Inter-active computer graphics systems are known in which a pointing device, such as a mouse, is used to move a cursor over a displayed image to point to a particular image element. The user can generally select and operate on the element pointed to by the cursor by pressing a button associated with the pointing device. In order for the underlying application program to understand what the user is intending, the graphics system must be able to associate the image position currently pointed to by the pointing device with a graphic object (or segment) known to the application. This translation of image position into graphic segment identity is central to the operation of inter-active graphic systems and is sometimes referred to as `hit detection`.
Hit detection is complicated by the fact that generally the underlying application and the graphics system utilises a common internal representation of the image to be displayed, which representation is made up of a plurality of discrete graphic segments that potentially overlap in the image. This representation does not map directly onto the output image and must be converted by the graphics system into a form suitable for display; this conversion process involves the resolution of overlap conflicts between graphic segments. The internal representation of the image in terms of graphic segments therefore cannot be used directly to interpret a received image position.
Accordingly, known hit detection techniques often involve re-running the conversion process until an output image element is generated that matches the received image position. Such a technique is described, for example, on page 200 of "Principles of Interactive Computer Graphics" William M. Newman and Robert F Sproull, second edition, McGraw-Hill, a standard textbook on computer graphics.
Another possible hit detection technique would be to use a frame buffer for storing each image pixel together with the identity of the associated graphic segment. Such an arrangement does, however, require the use of a substantial amount of memory.
In any event, in many cases it would be desirable for the underlying application to know not only the identity of the graphic segment pointed to by a pointing device, but also the corresponding point on that segment. In this respect it should be noted that the graphic segment will generally have undergone a spatial transformation involving translation, rotation and scaling in being convened from its internal representation understood by the application, to its form appearing in the image and pointed to by the pointing device. Ideally, the determination of the segment position pointed to, should be transparent to the underlying application.
It is an object of the present invention to provide a graphics systems capable of translating a received image position into the identity of the corresponding graphic segment, and a position on that segment, without involving the underlying application.